<template>
    <div>
        <el-row :gutter="20">
            <el-col :span="8">
                <el-card shadow="hover" class="mgb20" style="height:252px;">
                    <div class="user-info">
                        <img src="../assets/img/img.jpg" class="user-avator" alt />
                        <div class="user-info-cont">
                            <div class="user-info-name">{{ name }}</div>
                            <div>{{ role }}</div>
                        </div>
                    </div>

                    <div class="paihang">
                       <el-table
                        :data="tableData"
                        border
                        style="width: 100%;height:300px;">
                        <el-table-column
                        prop="username"
                        label="收益排行"
                        width="80">
                        </el-table-column>
                        <el-table-column
                        prop="syed"
                        label="收益额度">
                        </el-table-column>
                        <el-table-column
                        prop="sybl"
                        label="收益比例">
                        </el-table-column>
                    </el-table>
                        
                    </div>
                </el-card>

                
            </el-col>
            <el-col :span="16">
                <el-row :gutter="20" class="mgb20">
                    <el-col :span="8">
                        <el-card shadow="hover" :body-style="{ padding: '0px' }">
                            <div class="grid-content grid-con-1">
                                <i class="el-icon-user-solid grid-con-icon"></i>
                                <div class="grid-cont-right">
                                    <div class="grid-num">{{ (info && info.allusernum) || 0}}</div>
                                    <div>用户数</div>
                                </div>
                            </div>
                        </el-card>
                    </el-col>
                    <el-col :span="8">
                        <el-card shadow="hover" :body-style="{ padding: '0px' }">
                            <div class="grid-content grid-con-2">
                                <i class="el-icon-message-solid grid-con-icon"></i>
                                <div class="grid-cont-right">
                                    <div class="grid-num">{{ (info && info.onlinenum) || 0 }}</div>
                                    <div>在线</div>
                                </div>
                            </div>
                        </el-card>
                    </el-col>
                    <el-col :span="8">
                        <el-card shadow="hover" :body-style="{ padding: '0px' }">
                            <div class="grid-content grid-con-3">
                                <i class="el-icon-s-goods grid-con-icon"></i>
                                <div class="grid-cont-right">
                                    <div class="grid-num">{{ (info && info.ordernum) || 0 }}</div>
                                    <div>日模拟交易量</div>
                                </div>
                            </div>
                        </el-card>
                    </el-col>
                </el-row>
                <el-card shadow="hover" style="height:403px;">
                    <template #header >
                        <div class="clearfix" v-if="listData.length > 0">
                            <span>动态</span>
                            <div style="margin-top:15px;max-height: calc(100vh - 395px);overflow-y: auto;">

                                <div class="view flex-row align-center justify-between hor" style="margin-bottom:10px;" v-for="(item,index) in listData" :key="index">
                                    <div class="view flex-row align-center fz-12" >
                                        <div style="margin-right: 20px;">{{ item.note  }}</div>
                                        <div style="color:rgb(45, 140, 240);" class="fz-12">完全成交</div>
                                    </div>
                                    <div class="fz-12">
                                        {{ dayjs.unix(item.createtime ).format('YYYY-MM-DD HH:mm:ss') }}
                                    </div>
                                </div>

                            </div>
                        </div>
                        <el-empty description="暂无动态" v-else></el-empty>
                    </template>
                    
                    
                </el-card>
            </el-col>
        </el-row>
    </div>
</template>

<script>
import Schart from "vue-schart";
import { monitor,sysort, homeMessage }  from '@/api/index'
import dayjs from 'dayjs'
export default {
    name: "dashboard",
    data() {
        return {
            info : {},
            name: localStorage.getItem("ms_account"),
            tableData: [],
            listData: [],
            dayjs: dayjs,
            todoList: [
                {
                    title: "模拟交易成功，获得数量100的库存",
                    status: false
                },
                {
                    title: "模拟交易成功，获得数量100的库存",
                    status: false
                },
                {
                    title: "模拟交易成功，获得数量100的库存",
                    status: false
                },
                {
                    title: "模拟交易成功，获得数量100的库存",
                    status: false
                },
                {
                    title: "模拟交易成功，获得数量100的库存",
                    status: true
                },
                {
                    title: "今天要写100行代码加几个bug吧",
                    status: true
                }
            ],
            data: [
                {
                    name: "2018/09/04",
                    value: 1083
                },
                {
                    name: "2018/09/05",
                    value: 941
                },
                {
                    name: "2018/09/06",
                    value: 1139
                },
                {
                    name: "2018/09/07",
                    value: 816
                },
                {
                    name: "2018/09/08",
                    value: 327
                },
                {
                    name: "2018/09/09",
                    value: 228
                },
                {
                    name: "2018/09/10",
                    value: 1065
                }
            ],
            options: {
                type: "bar",
                title: {
                    text: "最近一周持仓数据分析"
                },
                xRorate: 25,
                labels: ["周一", "周二", "周三", "周四", "周五"],
                datasets: [
                    {
                        label: "A",
                        data: [234, 278, 270, 190, 230]
                    },
                    {
                        label: "B",
                        data: [164, 178, 190, 135, 160]
                    },
                    {
                        label: "C",
                        data: [144, 198, 150, 235, 120]
                    }
                ]
            },
            options2: {
                type: "line",
                title: {
                    text: "最近几个月各品类销售趋势图"
                },
                labels: ["6月", "7月", "8月", "9月", "10月"],
                datasets: [
                    {
                        label: "家电",
                        data: [234, 278, 270, 190, 230]
                    },
                    {
                        label: "百货",
                        data: [164, 178, 150, 135, 160]
                    },
                    {
                        label: "食品",
                        data: [74, 118, 200, 235, 90]
                    }
                ]
            }
        };
    },
    components: {
        Schart
    },
    computed: {
        role() {
            return this.name === "admin" ? "超级管理员" : "普通用户";
        }
    },
    beforeUnmount() {
       if (this.timer) {
            clearInterval(this.timer)
            this.timer = null
        } 
    },
    mounted() {
        this.fetchData()
        if (this.timer) {
            clearInterval(this.timer)
            this.timer = null
        }
       this.timer =  setInterval(() => {
            this.fetchData()
        }, 5000);
    },
    methods: {
        fetchData() {
            monitor({}).then(res => {
                this.info = res.data
            }).catch(ret => {

            })
            homeMessage({}).then(res => {
                this.listData = res.data
            })
            sysort({}).then(res => {
                this.tableData = res.data
            })
        },
        changeDate() {
            const now = new Date().getTime();
            this.data.forEach((item, index) => {
                const date = new Date(now - (6 - index) * 86400000);
                item.name = `${date.getFullYear()}/${date.getMonth() +
                    1}/${date.getDate()}`;
            });
        }
    }
};
</script>

<style scoped>
.el-row {
    margin-bottom: 20px;
}

.grid-content {
    display: flex;
    align-items: center;
    height: 100px;
}

.grid-cont-right {
    flex: 1;
    text-align: center;
    font-size: 14px;
    color: #999;
}

.grid-num {
    font-size: 30px;
    font-weight: bold;
}

.grid-con-icon {
    font-size: 50px;
    width: 100px;
    height: 100px;
    text-align: center;
    line-height: 100px;
    color: #fff;
}

.grid-con-1 .grid-con-icon {
    background: rgb(45, 140, 240);
}

.grid-con-1 .grid-num {
    color: rgb(45, 140, 240);
}

.grid-con-2 .grid-con-icon {
    background: rgb(100, 213, 114);
}

.grid-con-2 .grid-num {
    color: rgb(45, 140, 240);
}

.grid-con-3 .grid-con-icon {
    background: rgb(242, 94, 67);
}

.grid-con-3 .grid-num {
    color: rgb(242, 94, 67);
}

.user-info {
    display: flex;
    align-items: center;
    padding-bottom: 20px;
    border-bottom: 2px solid #ccc;
    margin-bottom: 20px;
}

.user-avator {
    width: 120px;
    height: 120px;
    border-radius: 50%;
}

.user-info-cont {
    padding-left: 50px;
    flex: 1;
    font-size: 14px;
    color: #999;
}

.user-info-cont div:first-child {
    font-size: 30px;
    color: #222;
}

.user-info-list {
    font-size: 14px;
    color: #999;
    line-height: 25px;
}

.user-info-list span {
    margin-left: 70px;
}

.mgb20 {
    margin-bottom: 20px;
}

.todo-item {
    font-size: 14px;
}

.todo-item-del {
    text-decoration: line-through;
    color: #999;
}

.schart {
    width: 100%;
    height: 300px;
}
.hor {
    cursor: pointer;
}
.hor:hover {
    background: rgb(50, 65, 87);
  
}
.hor:hover * {
    color: #fff !important;
}
.fz-12 {font-size: 12px;}
</style>
